<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>Promise-用来处理异步操作</p>
    <p>
        Promise.prototype.then的作用是为 Promise 实例添加状态改变时的回调函数。
        `then`方法的第一个参数是`resolved`状态的回调函数，
        第二个参数（可选）是`rejected`状态的回调函数。
        `then`方法返回的是一个新的`Promise`实例（注意，不是原来那个`Promise`实例）。
        因此可以采用链式写法，即`then`方法后面再调用另一个`then`方法。
        以前是在里面嵌套着写，现在是在后面接着写
    </p>
    <p>
        关于.then().catch()
        第一种写法：
        new Promise().then(成功的回调函数，失败的回调函数)
        第二种写法：
        new Promise().then(成功的回调函数).catch(失败的回调函数)
    </p>
    <script>
        function timeOut (ms) {
            // Promise中要包含有异步代码，这里是用的setTimeout
            return new Promise((resolve, reject) => {
                setTimeout(()=>{
                    reject('error')
                }, ms)
            })
        }
        timeOut(3000).then(res => {
            console.log('okk', res);
        }, err => {
            console.log('err', err);
        })
    </script>
</body>
</html>